home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / aros / readme.contents < prev    next >
Text File  |  1996-09-13  |  8KB  |  206 lines

  1. WHAT IS THIS
  2. ------------
  3.  
  4. Welcome to the first attempt to explain you how it all works :)
  5.  
  6. If you read this, you have already downloaded the developer files
  7. for AROS and unpacked it. As you can see, everything is put into
  8. a subdirectory named "AROS" so you can easily get rid of all this.
  9.  
  10. THINGS THAT ARE MISSING
  11. -----------------------
  12.  
  13. Yeah, there are some things which are not in this archive for this or
  14. that reason. Here we go:
  15.  
  16. 1) The Amiga system header files are missing for obvious copyright
  17. reasons. You can use the files which come with your C-Compiler
  18. (DICE, SAS/C, StormC++ or Maxxon C++) or the ones from the Amiga
  19. Developer CD 1.1 (that's what I did).
  20.  
  21. 2) Linux 2.0 for Intel CPUs (1.2.13 might work, but I haven't tried and
  22. won't do it).
  23.  
  24. 3) GNU make 3.74 or better - A real make is neccessary and this is
  25. one.
  26.  
  27. 4) GCC 2.7.0 or better (2.7.2 is recommended because of the magnitude
  28. of bugs fixed).
  29.  
  30. 5) GAS/as from binutils 2.6
  31.  
  32. 6) GDB, the GNU debugger. It is no great help in our project because we do
  33. nasty things with the stack, but better than nothing anyway.
  34.  
  35. 7) GAWK to generate a couple of files.
  36.  
  37. There are a couple of files and directories below AROS and here is
  38. a short overview of what they are and what you can do with them.
  39.  
  40. THINGS WHICH ARE INCLUDED
  41. -------------------------
  42.  
  43. README* - Numerous READMEs which explain different aspects of AROS
  44.  
  45. arosshell.c - The main code for the shell which allows you to execute AROS
  46.     commands as you are used to it on you beloved Amiga. Also a very
  47.     small demo of how it works and also probably the most small demo
  48.     that does something useful.
  49.  
  50. crypt.c - This is a small program which allows you to create a password if
  51.     you want to use the CVS server (prefered). See README.CVS for how
  52.     it works.
  53.  
  54. tpl.c - Template file for AROS system library functions. Each function
  55.     gets it's own file.
  56.  
  57. makefile - This is the magic file which holds the whole crap together.
  58.     It has the following rules:
  59.  
  60.     "clean" - Delete all generated files.
  61.  
  62.     "all" - This is the default rule: Check (almost) all dependencies
  63.         and generate (almost) all files.
  64.  
  65.     "includes" - Generate/update some AROS include files, mostly
  66.         files in include/clib/.
  67.  
  68.     "dist" - Generate .tar.gz and .lha archives. They are put into
  69.         AROS/dist/. Make sure you have set the version in make.cfg
  70.         beforehand.
  71.  
  72. make.cfg - Global settings for the Makefiles. Each makefile reads this file
  73.     before it does anything else (well, almost... most makefiles set a
  74.     path to this file first :-) ) It sets up some interesting paths:
  75.  
  76.     $(OSGENDIR) - Use this path for all files which should go into
  77.         the OS itself.
  78.  
  79. configure - This is a small script which examines your system and creates a
  80.     file named "host.cfg" which is used by the makefile
  81.  
  82. host.cfg - This is read by the Makefile to get the name of your C compiler,
  83.     options that I should use and more. If this file is missing, make
  84.     will generate it for you.
  85.  
  86. purify - A small script which can be put in front of the C compiler
  87.     like this:
  88.  
  89.         purify cc ...
  90.  
  91.     It will modify some options to purify the code.
  92.  
  93. bin/ - This directory contains all generated files under the name of your
  94.     OS (eg. bin/linux/). This directory is called $(ARCHDIR). Below this
  95.     are two more directories: $(BINDIR) where the files should be put
  96.     which the end user should see and $(GENDIR) where you can create
  97.     a directory to put all files one part of AROS needs (eg. libs/ or
  98.     os/). The diretory $(OSGENDIR) is below $(GENDIR) and all *.o files
  99.     in this directory are collected to the AmigaOS.lib.
  100.  
  101. c/ - This directory contains a couple of applications for AROS and some
  102.     demos.
  103.  
  104. alib/ - contains the source for the amiga.lib
  105.  
  106. amiga/ - This is the directory where you can (and should) put things which
  107.     are copyrighted by someone and thus now part of the archive; right
  108.     now this means only the amiga header files which you get along with
  109.     your C-Compiler (eg. DICE, SAS/C, StormC++, Maxon C++) or from the
  110.     Amiga Developer CD 1.1 (recommended since it's the most simple and
  111.     inexpensive way to get them). The CD is available at your local
  112.     dealer or by mail order. Just put the includes into a subdir
  113.     "include" below "amiga" and AROS will find them there.
  114.  
  115. aros/ - contains code for the aros.lib; this library contains several
  116.     function which make your life easier.
  117.  
  118. devs/ - System devices: console.device
  119.  
  120. dist/ - "make dist" will put an archive with all files for developers
  121.     and users in this directory. Make sure the version in make.cfg
  122.     is set to the correct value because it will be used to determine
  123.     the name of the archive.
  124.  
  125. dos/ - The first library which is added to the OS by standard operations.
  126.     Use this one as a starting point if you want to develop own
  127.     libraries. Here is a list of interesting files:
  128.  
  129.     dos_functable.c - An array which all functions of the library.
  130.         It is generated by a script from the headers of all
  131.         *.c-files in this directory.
  132.  
  133.     dos_init.c - The init-code (lib_init, lib_open, lib_close,
  134.         lib_expunge).
  135.  
  136.     dos_intern.h - A common include-file for all *.c-files in this
  137.         directory. It must not contain anything which is necessary
  138.         outside this directory.
  139.  
  140.     dos_debug.h - Enable and disable debugging for a function of the
  141.         library.
  142.  
  143.     makefile - This is a good example of how a makefile for a library,
  144.         which is linked into the system, should look like
  145.  
  146.     All other files are functions of the library with one function
  147.     per file. Each file contains an AutoDoc-like header and some
  148.     extra infos which are needed by the scripts. If possible each
  149.     file should also contain a test which can be enabled with -DTEST.
  150.     See "filepart.c" for a good example.
  151.  
  152. exec/ - The source for the exec.library. This is no good starting point
  153.     for own libraries since Exec is not initialized like other
  154.     libraries and so some things are handled differently here.
  155.  
  156.     Exec relies on some files which are in $(KERNEL)/.
  157.  
  158. filesys/ - A starting filesystem which uses the Linux ext2fs to emulate
  159.     a DOS device, the basics for a NULL: device and the beginning of
  160.     a RAM Disk.
  161.  
  162. graphics/ - Sourcecode for the graphics.library. See dos/ for more
  163.     information.
  164.  
  165. i386-emul/ - Linux version of the kernel. It consists mainly of a bunch
  166.     of assembler files which implement functions that can't be done
  167.     in C (eg. semaphores, stack handling or task switching). Note that
  168.     this is the only directory which may contain assembler files and
  169.     which is different for every architecture. If you begin your work
  170.     on some new architecture, make such a directory for your hardware
  171.     and put all hardware dependend files in there. It is a rule that
  172.     you can do anything inside this directory as long as it has no
  173.     influence on the other files and diretories. The directory must
  174.     support the standard rules "all" and "clean" and read "make.cfg".
  175.     All files generated by the makefile should go into $(OSGENDIR).
  176.  
  177.     Some files in here might be of interest:
  178.  
  179.     init.c - This file contains the real main() and sets up all
  180.         libraries, devices and all other stuff which must be
  181.         known before the first user process can begin to work.
  182.  
  183.     machine.h - Constants which allow Exec to adjust to the local
  184.         hardware.
  185.  
  186.     makefile - This is a good example of how sub-makefiles for AROS
  187.         should look like.
  188.  
  189. intuition/ - Sourcecode for the intuition.library. See dos/ for more
  190.     information.
  191.  
  192. m68k-emul/ - Untested assembler code for machines which have an 680x0
  193.     CPU but which are not Amigas (Mac, for example).
  194.  
  195. m68k-native/ - Untested assembler code for Amiga hardwares. Untested means:
  196.     They might work but I haven't tried. They should be a good
  197.     basis for beginning the work to make AROS run on an Amiga but
  198.     you should first have a look at i386-emul/ which is the most
  199.     upto-date version.
  200.  
  201. test/ - Testcode which is more complex.
  202.  
  203. utility/ - Sourcecode for the utility.library. See dos/ for more
  204.     information.
  205.  
  206.